﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Program16
{
    class Program
    {
        static void Main(string[] args)
        {


            int[] nums = { 2, 8, 4, -7, 5, 4, -3 };

            #region 冒泡排序
            //每次循环跳过最后一个元素
            for (int i = 0; i < nums.Length - 1; i++)
            {
                for (int j = 0; j < nums.Length - 1 - i; j++)
                {
                    if (nums[j] > nums[j + 1])
                    {
                        int temp = nums[j];
                        nums[j] = nums[j + 1];
                        nums[j + 1] = temp;
                    }
                }
            }
            #endregion

            #region 选择排序
            int minIndex; //存放下标
            for (int i = 0; i < nums.Length - 1; i++)
            {
                minIndex = i;
                //查找余下数组中最小值的下标，存放到minIndex中
                // 每次循环只从后一个开始
                for (int j = i + 1; j < nums.Length; j++)
                {
                    if (nums[j] < nums[minIndex])
                    {
                        minIndex = j;
                    }
                }
                //交换
                var tmp = nums[i];
                nums[i] = nums[minIndex];
                nums[minIndex] = tmp;
            }
            #endregion
            //打印数组
            foreach (var item in nums)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
        }
    }
}
